
package com.catsic.zcjc.service.impl;

import com.catsic.base.BaseInfo;
import com.catsic.base.BaseServiceImpl;
import com.catsic.base.exception.CatsicException;
import com.catsic.core.exception.CatsicExceptionCode;
import com.catsic.zcjc.constants.ZcjcConstants;
import com.catsic.zcjc.dao.EquipDataMarkDao;
import com.catsic.zcjc.entity.EquipData;
import com.catsic.zcjc.entity.EquipDataMark;
import com.catsic.zcjc.entity.MarkLabel;
import com.catsic.zcjc.service.EquipDataMarkService;

import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;


@Service("equipDataMarkService")
public class EquipDataMarkServiceImpl extends BaseServiceImpl<EquipDataMark, String> implements EquipDataMarkService {
	
	/**
	 * maintainDataFileDao:Dao
	 */
	@Autowired
	private EquipDataMarkDao equipDataMarkDao;
	

	@Override
	public EquipDataMark add(EquipDataMark data) {
		super.add(data);
		return data;
	}


	@Override
	public EquipDataMark findById(String id){
		EquipDataMark data = getById(id);
		if(null == data){
			throw new CatsicException(CatsicExceptionCode.实体不存在, ZcjcConstants.EQUIP_MAINTAIN);
		}
		return data;
	}

	@Override
	public List<EquipDataMark> findByDataIdAndCreate(String dataId, String createId){
		return equipDataMarkDao.findByDataIdAndCreate(dataId, createId);
	}


	@Override
	public void updateSaveMark(String dataId, String[] marks,BaseInfo user) {
		List<EquipDataMark> list = this.findByDataIdAndCreate(dataId, user.getUserId());
		if(CollectionUtils.isNotEmpty(list)){
			this.delete(list);
		}
		
		if(marks!=null){
			EquipData equipData = new EquipData();
			equipData.setId(dataId);
			
			for(String mark : marks){
				MarkLabel label = new MarkLabel();
				label.setId(mark);
				EquipDataMark dataMark = new EquipDataMark();
				dataMark.setEquipData(equipData);
				dataMark.setMarkLabel(label);
				dataMark.setCreateId(user.getUserId());
				dataMark.setCreateName(user.getUsername());
				this.add(dataMark);
			}
		}
	}

}
